(() => {
    // 继承： 类与类之间的关系
    // 继承后类与类之间的叫法
    // A 类继承了B这个类， 那么此时 A类叫子类，B类叫基类
    // 子类----> 派生类
    // 基类----> 超类(父类)
    class Person {
        constructor(name, age, gender) {
            this.name = name;
            this.age = age;
            this.gender = gender;
        }
        sayHi() {
            console.log(`我是：${this.name}`);
        }
    }
    // 定义一个学生类， 继承自 Person
    class Student extends Person {
        constructor(name, age, gender) {
            super(name, age, gender);
        }
        sayHi() {
            console.log('我是 student 类');
            super.sayHi();
        }
    }
    const person = new Person('小明', 21, '男');
    person.sayHi();
    const stu = new Student('小红', 21, '女');
    stu.sayHi();
    // 总结： 类和类继承， 用 extends 
    // 子类中使用父类的属性和方法，用 super
    // 子类可以重写父类的方法
})();
